Method for diffusion based cell placement migration

ABSTRACT

A method for cell placement in an integrated circuit design that uses a calculated diffusion velocity determined from a density value in order to relocate the cells until the cell placement reduces the density below a predetermined threshold. The method acts to control the movement of different cells to reduce the density of the cells prior to legalization of the cell placement.

The Present Application is a Division of U.S. patent application Ser.No. 11/304,955, filed on Dec. 15, 2005, and claims the benefit ofpriority therefrom under 35 U.S.C. §121.

BACKGROUND

1. Technical Field of the Present Invention

The present invention generally relates to the design of integratedcircuits, and more specifically, to the placement of cells within thedesign.

2. Description of Related Art

Integrated circuits have a large number of electronic components(millions of transistors) and are fabricated using several layers ofdifferent materials placed on a silicon base or wafer. The design of anintegrated circuit involves transforming a description of the electricalcomponents into geometrical representations known as a layout. Thelayout has a set of planar geometric shapes in each of the variouslayers of materials.

The process of transforming the description of the electrical componentsinto a layout is called the physical design. Physical design involvesarranging elements, wires, and predefined cells on a fixed area. Due tothe large number of components and the exacting details required by thefabrication process, physical design is not practical without the aid ofcomputers. As a result, most phases of physical design use ComputerAided Design (CAD) tools.

The object of the physical chip design is to determine an optimalarrangement for devices residing on a plane and to find an efficientinterconnection or routing scheme between the devices to obtain thedesired functionality. Since space on the chip surfaces are at apremium, algorithms for this placement must use this space veryefficiently in order to lower costs and improve yield. The arrangementof individual cells in an integrated circuit is known as cell placement.

Placement migration is the movement of cells within an existingplacement to address a variety of post-placement design closure issuessuch as timing, routing congestion, signal integrity, and heatdistribution. Any movement by the cells during placement migration mustbe performed so as to minimize the disruption to the original placementas little as possible.

A placement is considered “illegal” if cells overlap or fail to alignwith circuit rows. The term “legalization” is used to describe theprocess of taking an illegal placement and disrupting the layout to makeit “legal” while minimizing any disruptions so as to preserve as near aspossible the desired characteristics of the original illegal placement.

Existing techniques for performing legalization include network flow,heuristic ripple cell movement, dynamic programming, and single rowoptimization. Although these techniques accomplish the legalization ofthe cell placement, they do so at a cost that disrupts the original cellplacement more than is optimally desired.

It would, therefore, be a distinct advantage to have a method andapparatus that implements a legalization technique in a more continuousmanner than the prior art methods.

SUMMARY OF THE PRESENT INVENTION

In one aspect, the present invention is a method of placing cells in anintegrated circuit design. The method includes the step of defining gridlocations for the design, the grid locations having a predetermined sizeand shape. The method also includes the step of calculating a densityvalue for the grid locations according to the number of cells locatedwithin the grid. The method further includes the step of calculating thevelocity for the cells using the density values of the grid locations.The method also includes the step of moving the cells according to theircalculated velocity until the density value of each one of the gridlocations is less than or equal to the predetermined density.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be better understood and its numerous objectsand advantages will become more apparent to those skilled in the art byreference to the following drawings, in conjunction with theaccompanying specification, in which:

FIG. 1 is a diagram illustrating an example of the binning of cellcoordinates and their respective density and velocity at a given timeaccording to the teachings of the present invention;

FIG. 2 is a diagram illustrating in greater detail the velocity of fourbins of FIG. 1 according to the teachings of the present invention;

FIG. 3 is a diagram illustrating an example of a cell at a specifiedlocation migrating to different location using the diffusion method ofthe present invention;

FIG. 4 is a drawing illustrating the modification of an original densitymap to a new density map according to the teachings of the presentinvention;

FIG. 5 is a diagram illustrating an example of a plurality of binshaving density values for time n for demonstrating chip boundary andmacro handling according to the teachings of the present invention;

FIG. 6 is a flow chart illustrating the method for using diffusion toperform cell placement migration for legalization according to theteachings of the present invention;

FIG. 7 is a diagram illustrating an example that requires cellplacement;

FIG. 8 is a diagram illustrating the cells of FIG. 7 after the diffusioncell placement method of FIG. 6 has been applied according to theteachings of the present invention; and

FIG. 9 is a block diagram illustrating a computer system that can beused to implement a preferred embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT OF THE PRESENTINVENTION

The present invention is a method, apparatus, and computer programproduct that use the principles of diffusion for cell placement in anintegrated circuit design. More specifically, the present inventionimplements a diffusion based model, as described herein, that moves eachcell a small amount during a given time period (step) according to itslocal density gradient. As the number of times the diffusion process isfollowed increases, the placement proceeds closer towards equilibrium.

The present invention is described below in connection with cellplacement migration techniques in order to facilitate the ease withwhich the present invention can be explained and understood. It is not,however, to be considered a limitation on the applicability of diffusionmethod to other cell placement techniques.

Cell placement is considered “illegal” if cells overlap or fail to alignwith specified circuit rows. The term “legalization” describes theprocess of taking an illegal placement and disrupting the layout untilit is legal. The goal of legalization is to perform this disruptionwhile maintaining the desired characteristics of the illegal placementas much as possible.

Diffusion Principle

In diffusion, materials from highly concentrated areas flow into lessconcentrated areas and are driven by the concentration gradient (i.e.,slope and steepness of the concentration difference at a given point).The concentration of a cross section of unit area over time is simplythe difference between the material flow into and out of the crosssection. Mathematically, the relationship of material concentration withtime and space can be described by equation one (1)

$\frac{\partial{d_{x,y}(t)}}{\partial t} = {D{\nabla^{2}{d_{x,y}(t)}}}$

where d_(x, y)(t) is the material concentration at position (x, y) attime t and D is the diffusivity which determines the speed of diffusion.In order to simplify the following explanation, it can be assumed thatD=1. Equation one states that the speed of density change is linear withrespect to its second order gradient over the density of space. Thisimplies that elements migrate with increased speed when the localdensity gradient is higher. In the context of placement, cells will movequicker when their local density neighborhood has a steeper gradient.

When the region for diffusion is fixed (as in cell placement), theboundary conditions are defined as ∇d_(Xb, Yb)(t) for coordinates(x_(b), y_(b)) on the chip boundary. The coordinates for residing overfixed blocks are also defined in the same manner in order to preventcells from diffusing on top of fixed blocks.

In diffusion, a cell migrates from an initial location to its finalequilibrium location via a non-direct route. This route can be capturedby a velocity function that gives the velocity of a cell at everylocation in the circuit for a given time t. This velocity at a certainposition and time is determined by the local density gradient and thedensity itself. Obviously, a sharp density gradient causes cells to movefaster. For every potential (x, y) location, a two-dimensional velocityfield v_(x, y)=(v^(H) _(x, y), v^(V) _(x, y)) of diffusion at time t isdefined by equation set two (2)

${V_{x,y}^{H}(t)} = {{- \frac{\partial{d_{x,y}(t)}}{\partial x}}/{d_{x,y}(t)}}$${v_{x,y}^{V}(t)} = {{- \frac{\partial{d_{x,y}(t)}}{\partial x}}/{d_{x,y}(t)}}$

Given this equation, and a starting location (x(0), y(0)) for aparticular location, one can find the new location (x(t), y(t)) for theelement at time t by integrating the velocity field as follows inequation set three (3):

x(t)=x(0)+∫₀ ^(t) v ^(H) _(x(t′),y(t′))(t′)dt′

y(t)=y(0)+∫₀ ^(t) v ^(V) _(x(t′),y(t′))(t′)dt′

Equations one, two, and three can be used to simulate the diffusionprocess. Given any particular element, these equations can be used tofind the new location of the element at any point in time t. Thisparadigm can be applied to cell placement by migrating from a continuousspace to a discrete place since cells have various rectangular sizes andthe placement itself is discrete.

Diffusion Based Model Placement Binning

The continuous coordinates of cell placement can be organized bydividing the cell placement areas into equal sized bins indexed by (j,k). For ease of explanation, the coordinate system is scaled so that thewidth and height of each bin is one such that location (x, y) is locatedinside bin (j, k) (|x|, |y|). The continuous time can also be brokeninto steps to nΔt, where Δt is the size of the discrete time step.

Bin Density

Instead of the continuous density d_(x, y), the density is now describedin the context of the density d_(j, k) of bin (j, k). The initialdensity d_(j, k)(0) of each bin (j, k) can be defined asd_(j, k)(0)=ΣÂ_(i) where Â_(i) is the overlapping area of cell i and bin(j, k).

Again, for ease of explanation, it can be assumed that if a fixed blockoverlaps a bin, it overlaps the bin in its entirety. In these cases, thebin density is defined to be one so that cells are prevented fromdiffusing on top of fixed blocks.

It can also be assumed for the moment that density d_(j, k)(n) hasalready been calculated for time n. The next step is to find how thedensity changes and cells move for the next time step n+1. The ForwardTime Centered Space (FTCS) scheme can be used to reformulate equationone. The new bin density is give by equation four:

${d_{j,k}\left( {n + 1} \right)} = {{d_{j,k}(n)} + {\frac{\Delta \; t}{2}\left( {{d_{{j + 1},k}(n)} + {d_{{j - 1},k}(n)} - {2{d_{j,k}(n)}}} \right)} + {\frac{\Delta \; t}{2}\left( {{d_{j,{k + 1}}(n)} + {d_{j,{k - 1}}(n)} - {2{d_{j,k}(n)}}} \right)}}$

The new density of a bin at time n+1 is dependent on its density and thedensity of its four neighbor bins. The degree of migration out of (orinto) the bin is proportional to its local gradient.

Reference now being made to FIG. 1, a diagram is shown illustrating anexample of the binning of cell coordinates and their respective densityand velocity at a given time according to the teachings of the presentinvention. In this example, it can be assumed that Δt=0.2 and thedensity of bin (1,1) at time n+1 is given by the following equation:

$\begin{matrix}{{d_{1,1}\left( {n + 1} \right)} = {{d_{1,1}(n)} + {0.22/\left( {{d_{2,1}(n)} + {d_{0,1}(n)} - {2{d_{1,1}(n)}}} \right)} +}} \\{{{0.2/2}\left( {{{d_{1,2}(n)} + {d_{1,0}(n)}}-={2{d_{1,1}(n)}}} \right)}} \\{= 0.98}\end{matrix}$

Cell Velocity

In a similar fashion, equation two can be reformulated to calculate thevelocity for cells inside each of the bins. For now, assume that eachcell in a bin is assigned the same velocity, the velocity for each binrepresented by equation set five:

${v_{j,k}^{H}(n)} = \frac{{- {d_{{j + 1},k}(n)}} - {d_{{j - 1},k}(n)}}{2{d_{j,k}(n)}}$${v_{j,k}^{V}(n)} = \frac{{- {d_{j,{k + 1}}(n)}} - {d_{j,{k - 1}}(n)}}{2{d_{j,k}(n)}}$

The horizontal (vertical) velocity is proportional to the differences indensity of the two neighboring horizontal (vertical) bins. For example,the velocity for bin (1,1) in FIG. 1 is given by the solving equationset five as follows:

${v_{1,1}^{H}(n)} = {\frac{{- d_{2,1}} - {d_{0,1}(n)}}{2{d_{1,1}(n)}} = {\frac{{- 0.4} - 1.4}{2(1.0)} = 0.5}}$${v_{j,k}^{V}(n)} = {\frac{{- {d_{j,{k + 1}}(n)}} - {d_{j,{k - 1}}(n)}}{2{d_{j,k}(n)}} = {\frac{{- 0.4} - 1.6}{2(1.)} = 0.6}}$

Similarly, densities for other bins are given by v_(1, 2)=(0.5, 0),v_(2, 1)=(0.25, −0.25) and V_(2, 2)=(−0.125, 0.125). It should be notedthat bin (1, 2) has no vertical velocity component since the densitiesboth above and below are equal to 1.0. In order to ensure that fixedcells and bins outside the boundary do not move, v^(V) is set equal to 0at a horizontal boundary and v^(H) is set equal to 0 at a verticalboundary.

Cell Velocity Interpolation

Unfortunately, assuming that each cell in a bin has the same velocityfails to distinguish between the relative locations of cells within abin. In addition, two cells that are right next to each other but indifferent bins can be assigned very different velocities, which couldchange their relative ordering. Since the goal of cell placementmigration is to preserve the integrity of the original cell placement,this behavior must be altered. The present invention alters thisbehavior by applying velocity interpolation to generate velocity for anygiven (x, y).

In example, (p, q) exists such that the four closest bin centers to (x,y) are (p, q), (p+1,q), (p, q+1), and (p+1, q+1). Let α=x+0.5−[x+0.5]and β=y+0.5−[y+0.5]. if α=β=0, then (x, y) is located at the center ofbin (p, q) and its velocity is given velocity V_(p, q).

Reference now being made to FIG. 2, a diagram is shown illustrating ingreater detail the velocity of four bins ((1,2), (2,2), (1,1) and (2,1)of FIG. 1 according to the teachings of the present invention. As shown,the bin velocity is marked at the center of each bin. The velocities atits four closest centers interpolate the velocity for a point inside abin. The velocity for cell (x, y) (denoted by (v^(H) _(x, y), v^(Y)_(x, y))) is given by the equation set six:

v_(x, y)^(H) = v_(p, q)^(H) + α(v_(p + 1, q)^(H) − v_(p, q)^(H)) + β(v_(p, q + 1)^(H) − v_(p, q)^(H)) + αβ(v_(p, q)^(H) + v_(p + 1, q + 1)^(H) − v_(p + 1, q)^(H) − v_(p, q + 1)^(H))v_(x, y)^(V) = v_(p, q)^(V) + α(v_(p + 1, q)^(V) − v_(p, q)^(V)) + β(v_(p, q + 1)^(V) − v_(p, q)^(V)) + αβ(v_(p, q)^(H) + v_(p + 1, q + 1)^(H) − v_(p + 1, q)^(H) − v_(p, q + 1)^(H))

An example location (x=1.6, y=1.8) on FIG. 2, shows a α=0.1 and β=0.3.The velocity for this point is given by:

v_(1.6, 1.8)^(H) = v_(1, 1)^(H) + 0.1(v_(2, 1)^(H) − v_(1, 1)^(H)) + 0.3(v_(1, 2)^(H) − v_(1, 1)^(H)) + 0.03(v_(1, 1)^(H) + v_(2, 2)^(H) − v_(2, 1)^(H) − v_(1, 2)^(H)) = 0.45625v_(1.6, 1.8)^(V) = v_(1, 1)^(V) + 0.1(v_(2, 1)^(V) − v_(1, 1)^(V)) + 0.3(v_(1, 2)^(V) − v_(1, 1)^(V)) + 0.03(v_(1, 1)^(V) + v_(2, 2)^(V) − v_(2, 1)^(V) − v_(1, 2)^(V)) = 0.40175

Since the velocity for each cell can be determined at time n=t/Δt, thenew placement of each cell can be calculated using a reformation ofequation set three. In example, assume that the velocity for (x (n), y(n)) has already been calculated. Using Taylor expansion allows thecalculation of x (n+1), y (n+1) in equation set seven:

x(n+1)=x(n)+v ^(H) _(x(n),y(n)) *Δt

y(n+1)=y(n)+v ^(V) _(x(n),y(n)) *Δt

Diffusion Based Legalization Model

Reference now being made to FIG. 3, a diagram is shown illustrating anexample of a cell at location (x(0), y(0)) migrating to location (x(9),y(9)) using the diffusion method of the present invention. Blocks302-306 represent fixed blockages and reference 308 shows the movementof the cell from initial position x(0), y(0) to x(9), y(9) using ninediscrete time steps according to the equations above. From the path ofthe cell, it becomes apparent that the cell never overlapped a blockage302-306 and the magnitude of its movements became smaller toward thetail of its path.

The term d_(max) is used to specify the maximum allowed cell density ofa bin (commonly equal to 1). Placement is considered close to legal ifthe cell density of every bin is less than or equal to the value ofd_(max). The goal of legalization is to reduce the density of those binsthat are greater than d_(max) to a density that is equal to or less thand_(max) (i.e. migrating cells to less dense bins where required) whilekeeping the cells as close as possible to their original locations andpreserving the ordering induced by the original placement during theirmigration.

In order to legalize a design each bin must have a densityd_(j, k)<=d_(max). The existing placement of a design is designated withlocations (x_(i), y_(i)) for each cell i, N placement bins, and amaximum bin density of d_(max).

Since the diffusion process reaches equilibrium when each bin has thesame density, it can be expected that the final density after diffusionwill be the same as the average density Σd_(j, k)/N. Unfortunately, thismay cause unnecessary spreading of cells, especially, if the averagedensity is well below the maximum density constraint.

For example, once every bin is below the maximum density constraint,diffusion can cause additional spreading even though the requirementsfor legalization have been met. This spreading will unnecessarilydisrupt the placement. In order to avoid unnecessary spreading, theinitial density values of those bins under the maximum density will beincreased prior to calculating the diffusion of the cells. Morespecifically, those bins having a density that is less than d_(max) areartificially increased so that the average density equals d_(max) priorto beginning the diffusion calculations. One way to adjust d_(j, k) isas follows with equation eight:

${\overset{\sim}{d}}_{j,k} = \begin{matrix}\left\{ {d_{\max} - {\left( {d_{\max} - d_{j,k}} \right)A_{0}\text{/}A_{s}}} \right. & {d_{j,k} < d_{\max}} \\\left\{ d_{j,k} \right. & {d_{j,k}>=d_{\max}}\end{matrix}$

where A_(o) is the total area over d_(max) and A_(s) is total area lessthan d_(max) (i.e., the available space to hold A_(o) after spreading).This can be validated with the following equation:

$\frac{{\overset{\sim}{\Sigma}{dj}},k}{N} = d_{\max}$

Reference now being made to FIG. 4, a drawing is shown illustrating themodification of an original density map 402 to a new density map 404according to the teachings of the present invention. Density map 402represents a 2×2 bin. The d_(1,0) bin has a density of 1.3 and is overthe maximum allowed density of 1, d_(1, 1) and d_(0, 1) bins havedensities less than 1, and bin d_(0, 0) has a density equal to 1. Inapplying equation eight, A₀=d_(1, 0)−1=0.3 andA_(s)=(1−d_(1, 1))+(1−d_(0, 1))=0.6. Density map 404 is the result ofadjusting the two bins (d_(1, 1) and d_(0, 1)) in accordance withequation eight.

$\frac{{\overset{\sim}{d}}_{0,0} + {\overset{\sim}{d}}_{0,1} + {\overset{\sim}{d}}_{1,0} + {\overset{\sim}{d}}_{1,1}}{4} = 1.$

d_(j, k) will be used as the initial condition (t=0) for the diffusionequation four. The equation below represents equation nine.

d _(j,k)(0)={tilde over (d)} _(j,k).

At the boundary of the chip or a fixed macro, there is no diffusionbetween the sides of the boundary. Consequently, the densities on bothsides need to be the same to assure the density gradient is zero whencalculating equation four. On a horizontal boundary,d_(j, k+1)(n)=d_(j, k−1)(n) if bin (j, k) is on the lower side of theboundary, or d_(j, k−1)(n)=d_(j, k+1)(n) if on the upper side. On avertical boundary, d_(j+1, k)(n)=d_(j−1, k)(n) if on the left side, ord_(j−1, k)(n)=d_(j+1, k)(n) if on the right side.

Reference now being made to FIG. 5, a diagram is shown illustrating anexample of a plurality of bins having density values for time n fordemonstrating chip boundary and macro handling according to theteachings of the present invention. In this example, it can be assumedthat <t=0.2 and bins (4, 3), (5,3), (4,4) and (5, 4) are fixed. Bin (3,4) is on the left vertical boundary of the fixed macro, while bin (4, 5)is on the upper horizontal boundary. When calculating d_(3, 4)(n+1)d_(4, 4)(n) is made to equal d_(2, 4)(n) and equation four becomes:

${d_{3,4}\left( {n + 1} \right)} = {{{d_{3,4}(n)} + {\frac{0.2}{2}\left( {{d_{2,4}(n)} + {d_{2,4}(n)} - {2{d_{2,3}(n)}}} \right)} + {\frac{0.2}{2}\left( {{d_{3,5}(n)} + {d_{3,3}(n)} - {2{d_{3,4}(n)}}} \right)}} = 0.96}$

Similarly, when calculating d_(4, 5)(n+1) d_(4, 4)(n) is made to equald_(4, 6)(n) and equation four becomes:

${d_{4,5}\left( {n + 1} \right)} = {{{d_{4,5}(n)} + {\frac{0.2}{2}\left( {{d_{3,5}(n)} + {d_{5,5}(n)} - {2{d_{4,5}(n)}}} \right)} + {\frac{0.2}{2}\left( {{d_{4,6}(n)} + {d_{4,6}(n)} - {2{d_{4,5}(n)}}} \right)}} = 0.62}$

The density of bins inside of the fixed macros remains unmodified.

Reference now being made to FIG. 6, a flow chart is shown illustratingthe method for using diffusion to perform cell placement migration forlegalization according to the teachings of the present invention. Themethod begins by gathering cell locations (x_(i), y_(i)), the number ofbins (N), and the maximum density (d_(max)) for this particular design(step 600). The cells are then mapped onto the bins and the density(d_(j, k)) is calculated for each bin (j, k) (step 602). If required,the density of the bins (j, k) are manipulated as previously describedin connection with FIG. 4 to have an overall average density of d_(max)(step 604). The time variable is set to time zero and the velocity iscalculated for each of the bins (j, k) using equation set five (Steps606 and 608). The location of each cell is then calculated usingvelocity and interpolation (equations 7 and 6 respectively) (step 610).The density is calculated at t+1 for each bin using equation four (step612), and the time variable is increased by one (step 614).

If the density of each of the bins is less than or equal to d_(max) thenthe method ends at step 618; otherwise, the method proceeds back to step608 and repeats the process from that point.

After the diffusion process described above has been completed, the cellplacement will have a maximum density of d_(max) and is roughly legal.Any well-known legalization tool can be executed on the cell placementto put cells onto circuit rows without overlap.

Reference now being made to FIG. 7, a diagram is shown illustrating anexample that requires cell placement. Blocks 702-708 represent fixedblocks and designators 710-714 represent various layers and densities ofcells.

Reference now being made to FIG. 8, a diagram is shown illustrating thecells of FIG. 7 after the diffusion cell placement method of FIG. 6 hasbeen applied according to the teachings of the present invention. As canbe seen, cell layers 710-714 have spread out without interfering withthe fixed blocks 702-708 and meeting the required maximum density.

Reference now being made to FIG. 9, a block diagram is shownillustrating a computer system 900 that can be used to implement apreferred embodiment of the present invention. Computer System 100includes various components each of which are explained in greaterdetail below.

Bus 122 represents any type of device capable of providing communicationof information within Computer System 100 (e.g., System bus, PCI bus,cross-bar switch, etc.)

Processor 112 can be a general-purpose processor (e.g., the PowerPC™manufactured by IBM or the Pentium™ manufactured by Intel) that, duringnormal operation, processes data under the control of an operatingsystem and application software 110 stored in a dynamic storage devicesuch as Random Access Memory (RAM) 114 and a static storage device suchas Read Only Memory (ROM) 116. The operating system preferably providesa graphical user interface (GUI) to the user.

The present invention, including the alternative preferred embodiments,can be provided as a computer program product, included on amachine-readable medium having stored on it machine executableinstructions used to program computer system 100 to perform a processaccording to the teachings of the present invention.

The term “machine-readable medium” as used in the specification includesany medium that participates in providing instructions to processor 112or other components of computer system 100 for execution. Such a mediumcan take many forms including, but not limited to, non-volatile media,and transmission media. Common forms of non-volatile media include, forexample, a floppy disk, a flexible disk, a hard disk, magnetic tape, orany other magnetic medium, a Compact Disk ROM (CD-ROM), a Digital VideoDisk-ROM (DVD-ROM) or any other optical medium whether static orrewriteable (e.g., CDRW and DVD RW), punch cards or any other physicalmedium with patterns of holes, a programmable ROM (PROM), an erasablePROM (EPROM), electrically EPROM (EEPROM), a flash memory, any othermemory chip or cartridge, or any other medium from which computer system100 can read and which is suitable for storing instructions. In thepreferred embodiment, an example of a non-volatile medium is the HardDrive 102.

Volatile media includes dynamic memory such as RAM 114. Transmissionmedia includes coaxial cables, copper wire or fiber optics, includingthe wires that comprise the bus 122. Transmission media can also takethe form of acoustic or light waves, such as those generated duringradio wave or infrared data communications.

Moreover, the present invention can be downloaded as a computer programproduct where the program instructions can be transferred from a remotecomputer such as server 139 to requesting computer system 100 by way ofdata signals embodied in a carrier wave or other propagation medium vianetwork link 134 (e.g., a modem or network connection) to acommunications interface 132 coupled to bus 122.

Communications interface 132 provides a two-way data communicationscoupling to network link 134 that can be connected, for example, to aLocal Area Network (LAN), Wide Area Network (WAN), or as shown, directlyto an Internet Service Provider (ISP) 137. In particular, network link134 may provide wired and/or wireless network communications to one ormore networks.

ISP 137 in turn provides data communication services through theInternet 138 or other network. Internet 138 may refer to the worldwidecollection of networks and gateways that use a particular protocol, suchas Transmission Control Protocol (TCP) and Internet Protocol (IP), tocommunicate with one another. ISP 137 and Internet 138 both useelectrical, electromagnetic, or optical signals that carry digital oranalog data streams. The signals through the various networks and thesignals on network link 134 and through communication interface 132,which carry the digital or analog data to and from computer system 100,are exemplary forms of carrier waves transporting the information.

In addition, multiple peripheral components can be added to computersystem 100. For example, audio device 128 is attached to bus 122 forcontrolling audio output. A display 124 is also attached to bus 122 forproviding visual, tactile or other graphical representation formats.Display 124 can include both non-transparent surfaces, such as monitors,and transparent surfaces, such as headset sunglasses or vehiclewindshield displays.

A keyboard 126 and cursor control device 130, such as mouse, trackball,or cursor direction keys, are coupled to bus 122 as interfaces for userinputs to computer system 100.

Application software 110 represents CAD software that implements thediffusion based model for cell placement migration as described herein.

It is thus believed that the operation and construction of the presentinvention will be apparent from the foregoing description. While themethod and system shown and described has been characterized as beingpreferred, it will be readily apparent that various changes and/ormodifications could be made without departing from the spirit and scopeof the present invention as defined in the following claims.

1. A computer-performed method of controlling placement of cells in anintegrated circuit design comprising: partitioning the integratedcircuit design into a number of bins having a predetermined shape andsize; calculating, within a computer system, a corresponding densityvalue for the bins according to the number of cells in the correspondingbin; first determining corresponding horizontal velocity value for eachbin by computing a first difference in density between a first pair ofbins adjacent to the bin along a horizontal coordinate and dividing thefirst difference in density by twice the density of the bin; seconddetermining a corresponding vertical velocity value for each bin bycomputing a second difference in density between a second pair of binsadjacent to the bin along a vertical coordinate and dividing the seconddifference in density by twice the density of the bin; first setting thedetermined horizontal velocity to zero if the bin is located on a fixedboundary; first setting the determined vertical velocity to zero if thebin is located on a fixed boundary; first interpolating a horizontalcell velocity for each cell from the horizontal velocity for the twobins having centers closest to the cell and located on either side ofthe cell along the horizontal coordinate; second interpolating avertical cell velocity for each cell from the vertical velocity for thetwo bins having centers closest to the cell and located on either sideof the cell along the vertical coordinate; computing a new positions foreach cell by multiplying the corresponding horizontal cell velocity by apredetermined time interval and the corresponding vertical cell velocityby the predetermined time interval to obtain a horizontal and verticaldisplacement for each cell and then adding the horizontal and verticaldisplacements to the horizontal and vertical position of each cell torelocate the cells; repeating the calculating, first determining, seconddetermining, first setting, second setting, first interpolating, secondinterpolating and computing for multiple repetitions of thepredetermined time interval, whereby cells located in bins having a highdensity value are relocated at a higher rate than other cells located inbins having a lower density value; and storing a result of therelocation of the cells in a memory of the computer system.